#include <iostream>
using namespace std;

class point
{
	private:
		float x, y;
	public:
		virtual float area() { return 0.0; }
};

const float pi = 3.14159f;

class circle : public point
{
	private:
		float radius;
	public:
		void setRadius(float r) { radius = r; }
		float area(){ return pi * radius * radius; }
};

class A
{
	int *a;
	public:
		A(int x =0):a(new int(x)){}
		~A(){ delete a; }
		int getA(){ return *a; }
		void setA(int x){ *a = x; }
};

int main()
{
    point *p;
	circle c;
	c.setRadius(2.5);
	p = &c;
	cout << p->area() << endl;
	
	int i, j, s;
	for (i = 1; i <= 10000; i++)
	{
		s = 0;
		for (j = 1; j < i; j++)
		{
			if (i % j == 0) s = s + j;
			if (i == s) cout << i << endl;
		}
	}
	
	A x1, x2(3);
	A *k = &x2;
	(*k).setA(x2.getA() + 5);
	x1.setA(10 + x1.getA());
	cout << x1.getA() << " " << x2.getA() << endl;
    return 0;
}